package com.plpm.common.model;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @author RAN
 * @data 2025/3/21 16:00
 * @Description: 插件信息实体
 */
@Data
public class PluginInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Integer id;
    /**
     * 插件名
     */
    private String name;
    /**
     * 插件类型
     */
    private String type;
    /**
     * 插件类型
     */
    private String version;
    /**
     * 执行命令
     */
    private String executeCommand;
    /**
     * 执行文件
     */
    private String executeFile;
    /**
     * 执行参数
     */
    private String executeConfig;
    /**
     * 插件路径
     */
    private String path;
    /**
     * 插件配置
     */
    private String config;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 是否可用（0-可用；1-不可用）
     */
    private Integer isEnable;

    /**
     * 输入路径
     */
    private String inputPath;

    /**
     * 输出路径
     */
    private String outputPath;

    /**
     * 参数列表
     */
    private List<Param> params;

    /**
     * 参数类
     */
    @Data
    public static class Param implements Serializable {
        /**
         * 参数名
         */
        private String name;
        /**
         * 参数类型
         */
        private String type;
        /**
         * 参数类型
         */
        private String label;
        /**
         * 参数类型
         */
        private String placeholder;
        /**
         * 模式: single-单选、multiple-多选
         */
        private String mode;
        /**
         * 选项
         */
        private List<String> option;
        /**
         * 值
         */
        private String value;
        /**
         * 值
         */
        private Boolean required;
        /**
         * 类型
         */
        private String accept;
    }
}
